package headfirst.factory.topingfactory;

import headfirst.factory.topings.cheese.Cheese;
import headfirst.factory.topings.cheese.MozzarellaCheese;
import headfirst.factory.topings.clams.Clams;
import headfirst.factory.topings.clams.FrozenClams;
import headfirst.factory.topings.dough.Dough;
import headfirst.factory.topings.dough.ThickCrustDough;
import headfirst.factory.topings.meat.Chicken;
import headfirst.factory.topings.meat.Meat;
import headfirst.factory.topings.pepperoni.Pepperoni;
import headfirst.factory.topings.pepperoni.SlicedPepperoni;
import headfirst.factory.topings.sauce.PlumTomatoSauce;
import headfirst.factory.topings.sauce.Sauce;
import headfirst.factory.topings.veggies.BlackOlives;
import headfirst.factory.topings.veggies.Eggplant;
import headfirst.factory.topings.veggies.Spinach;
import headfirst.factory.topings.veggies.Veggies;

public class ChicagoPizzaToppingFactory 
	implements PizzaToppingFactory 
{

	public Dough createDough() {
		return new ThickCrustDough();
	}

	public Sauce createSauce() {
		return new PlumTomatoSauce();
	}

	public Cheese createCheese() {
		return new MozzarellaCheese();
	}

	public Veggies[] createVeggies() {
		Veggies veggies[] = { new BlackOlives(), 
		                      new Spinach(), 
		                      new Eggplant() };
		return veggies;
	}

	public Pepperoni createPepperoni() {
		return new SlicedPepperoni();
	}

	public Clams createClam() {
		return new FrozenClams();
	}
	
	public Meat createMeat() {
		return new Chicken();
	}
}
